// 当前的执行环境
const NODE_ENV = process.env.NODE_ENV

module.exports = {
  // 配置部署时的根路径
  publicPath: NODE_ENV === 'production' ? '/vue-shop/' : '/',
  // 热更新配置
  devServer: {
    open: true,
    port: 8081
  },
  // 自定义 webpack 打包配置
  chainWebpack: config => {
    // 发布环境
    if (NODE_ENV === 'production') {
      // 配置打包的入口文件
      config
        .entry('app')
        .clear()
        .add('./src/main-prod.js')

      // 通过 externals 加载外部 CDN 资源
      config.set('externals', {
        axios: 'axios',
        echarts: 'echarts',
        lodash: '_',
        vue: 'Vue',
        'vue-quill-editor': 'VueQuillEditor',
        'vue-router': 'VueRouter'
      })

      // 首页内容定制
      config.plugin('html').tap(args => {
        args[0].isProd = true
        return args
      })
    }

    // 开发环境
    if (NODE_ENV === 'development') {
      // 配置打包的入口文件
      config
        .entry('app')
        .clear()
        .add('./src/main-dev.js')

      // 首页内容定制
      config.plugin('html').tap(args => {
        args[0].isProd = false
        return args
      })
    }
  }
}
